Configuration of networks using client device access of remote server

ABSTRACT

Implementations relate to configuration of networks using client device access of a remote server. In some implementations, a method includes requesting a management server from an end device for shortest path bridging (SPB) configuration information for the end device to communicate on an SPB network, where the end device communicates with the management server over a non-SPB connection. The SPB configuration information is received from the management server, and the SPB configuration information is sent to an edge configuration device connected to the end device, where the SPB configuration information causes configuration of the edge configuration device to allow communication of the end device on the SPB network.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional ApplicationNo. 61/969,242, entitled, “Automatic Edge Device Attachment in FabricTopology Networks,” filed Mar. 23, 2014, and which is incorporatedherein by reference in its entirety.

The following commonly owned, co-pending United States PatentApplications, including the present application, are related to eachother. Each of the other patents/applications are incorporated byreference herein in its entirety:

U.S. patent application Ser. No. 14/041,173, entitled “MessageTransmission in Networks,” filed Sep. 30, 2013;

U.S. patent application Ser. No. 14/041,342, entitled “EnablingConfiguration in Networks,” filed Sep. 30, 2013;

U.S. patent application Ser. No. 14/041,242, entitled “EnablingEncapsulation in Networks,” filed Sep. 30, 2013;

U.S. patent application Ser. No. 14/656,604, entitled “Configuration ofNetworks with Server Cluster Device,” filed Mar. 12, 2015;

U.S. patent application Ser. No. 14/656,622, entitled “Authentication ofEnd Devices in Networks,” filed Mar. 12, 2015; and

U.S. patent application Ser. No. 14/656,629, entitled “Configuration ofNetworks using Switch Device Access of Remote Server,” filed Mar. 12,2015.

BACKGROUND

Communication networks are widely used to provide communication betweendifferent computer systems and other electronic devices. Wirelesscommunication networks offer increased convenient access to clientdevices, such as computers, phones, tablets, wearable devices, and otherdevices, by allowing network communications between these deviceswithout the need for wired connections. Some network devices such asservers can perform configuration in a network system provide connecteddevices access to one or more virtual local area networks (VLANs) andother network functionality. Conventionally, an authentication processand configuration process for connected devices is extensive andtypically requires much time and expertise from a network administrator.

SUMMARY

Implementations of the present application relate to configuration ofnetworks using client device access of a remote server. In someimplementations, a method includes requesting a management server froman end device for shortest path bridging (SPB) configuration informationfor the end device to communicate on an SPB network, where the enddevice communicates with the management server over a non-SPBconnection. The SPB configuration information is received from themanagement server, and the SPB configuration information is sent to anedge configuration device connected to the end device, where the SPBconfiguration information causes configuration of the edge configurationdevice to allow communication of the end device on the SPB network.

Various implementations and examples of the above method are described.For example, the requesting for SPB configuration information can beperformed by the end device upon connection of the end device to the SPBnetwork. The requesting for SPB configuration information can includesending identity information to the management server, the identityinformation identifying the end device or one or more users associatedwith the end device. The end device can be a non-SPB device that is notcompatible with the SPB network and can include a fabric attach agentfor processing networking configuration messages, and the edgeconfiguration device can also include a fabric attach agent. The SPBconfiguration information received from the management server caninclude one or more VLAN/ISID bindings for the end device. Theconfiguring of the edge configuration device can include creating one ormore VLANs for the end device on the edge configuration device asindicated by the SPB configuration information, and creating one or moreport memberships of the one or more VLANs for the end device. Theconfiguring of the SPB network for the end device can includeestablishing port tagging status on one or more ports of the edgeconfiguration device connected to an edge server device. In someexamples, the end device can communicate with the management server overa wireless network and can register with the management server.

In some implementations, a system can include a storage device and atleast one processor accessing the storage device and operative toperform operations. The operations can include various operationssimilar to the features described above for the method. Someimplementations can provide a computer program product comprising acomputer-readable medium including program instructions to beimplemented by a device connected to a communication network, theprogram instructions performing various operations similar to thefeatures described above for the method.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a block diagram depicting an example networkenvironment, which may be used to implement some implementationsdescribed herein.

FIG. 2 illustrates a block diagram depicting an example network systemwhich may be used to implement some implementations described herein.

FIG. 3 illustrates an example simplified flow diagram for transmittingmessages in networks, according to some implementations.

FIG. 4 illustrates an example simplified flow diagram for enablingconfiguration in networks, according to some implementations.

FIG. 5 illustrates an example simplified flow diagram for enablingencapsulation in networks, according to some implementations.

FIGS. 6-10 illustrate example binding lists, according to someimplementations.

FIG. 11 illustrates an example simplified flow diagram forauthenticating a device for use on a network, according to someimplementations.

FIG. 12 illustrates an example simplified flow diagram for configuring anetwork for a client device based on configuration information obtainedby an edge configuration device, according to some implementations.

FIG. 13 illustrates an example simplified flow diagram for configuring anetwork for a client device based on configuration information obtainedby an end device, according to some implementations.

FIG. 14 is a block diagram illustrating an example network systemincluding a server cluster device with peer server devices, according tosome implementations.

FIG. 15 illustrates an example simplified flow diagram for configuring anetwork using peer server devices.

FIG. 16 illustrates a block diagram of an example device which may beused to implement some features described herein.

DETAILED DESCRIPTION

Implementations described herein facilitate authentication of enddevices for network access and configuration of a network for enddevices. Some implementations can provide automatic authentication ofend devices for access to a network, by having an edge configurationdevice (e.g., a switch) access a remote source such as an authorizationserver. Some implementations can provide automatic configuration ofnetwork devices to provide access to features of a network by an enddevice, by having an edge configuration device access a remote sourcesuch as an access control server for configuration information. Someimplementations can provide automatic configuration of network devicesto provide access to features of a network by an end device, by havingan end device access a remote source such as a management server forconfiguration information. In some implementations, a server clusterdevice including multiple peer server devices can receive configurationinformation from a device such as an edge configuration device, and cansynchronize the configuration of the peer server devices to allownetwork access for an end device.

Implementations described herein can enable network devices that are notcompatible with a particular network standard to take advantage of theinfrastructure of a network utilizing that network standard. In someimplementations, the network can be a fabric topology network. Forexample, a network device compatible with a shortest path bridging (SPB)fabric standard can support various SPB functions including MAC-in-MACencapsulation/decapsulation and service identification using serviceidentifiers (ISIDs). However, devices directly connecting to such anetwork device may not be compatible or support SPB functions andtherefore cannot take advantage of the SPB infrastructure. Usingfeatures described herein, such a non-SPB compatible device can takeadvantage of such an SPB infrastructure with reduced user/administratoreffort and support.

Further, some features described herein allow non-SPB devices to beauthenticated and configured for SPB connectivity automatically, withoutrequiring a network administrator or other user to manually inputconfiguration information or other information to network devices toauthorize a particular end device and/or configure a network for aparticular end device.

For example, some described features can enable configuration of an SPBnetwork to include a non-SPB end device in the SPB functionality of thenetwork automatically upon connection of the end device to an edgeconfiguration device. Functions such as ISID and VLAN assignment canautomatically be configured on the network for the end device usingfabric attach messages. Using features described herein, thisconfiguration can be performed even if the end device is not compatiblewith fabric attach messages used for sending configuration informationto devices on the network.

For example, some features allow an edge configuration device toautomatically obtain authentication and configuration information for anon-SPB end device from a remote source upon connection of the enddevice to the edge configuration device. For example, the remote sourcecan be an access control server that can include or communicate with anauthentication server, allowing an edge configuration device toautomatically determine whether an end device is authenticated for useon the SPB network. The edge configuration device can send obtainedconfiguration information to an edge server device for creation of oneor more VLANs of the SPB network for the end device, port assignment forcreated and/or established VLAN(s), port tagging, etc. Thus, an edgeserver device and/or edge configuration device need not be manually fedconfiguration information to provide such network configuration for enddevices. Some features allow an end device to automatically obtainconfiguration information from a remote source. For example, the enddevice can contact a management server and receive configurationinformation, and the end device can send this configuration informationto a connected edge configuration device for configuration of VLANs forthe end device on the SPB network, e.g., using fabric attach messages.Thus, configuration information need not be manually input to the edgeserver device or edge configuration device to configure the network forthe end device.

Some features allow a server cluster device to automatically configurethe SPB network for an end device using fabric attach messages asdescribed herein. For example, a server cluster including multiple peerserver devices can receive configuration information from a device suchas an edge configuration device, and each peer server device can sendinformation to the other peer server device to synchronize theconfiguration of the peer server devices. Such features allow servercluster devices to provide automatic configuration of the network fornon-SPB end devices based on received configuration information.

FIG. 1 is a block diagram of an example network system 100 which can beused with some implementations described herein. The network system 100may include a network 101 providing communication links between multipledevices connected to the network. Network 101 can include any type ofnetwork that connects devices, such as a wide area network (WAN), localarea network (LAN), wireless network, or others types of networks. Anyone or more networking standards can be used for network 101, such asEthernet, common wireless networking standards, etc. In variousimplementations described herein, a wireless network can be used for atleast a portion of the network 101.

Client devices 102 can be operated by users and can communicate withother client devices 102 as well as other devices via the network 101.In various implementations, the client devices 102 can include wirelesstransmitters and receivers (e.g., transceivers, or radios) that allowthem to communicate signals wirelessly with other devices that also havethis capability. Each client device 102 can be any of a variety of typesof devices. For example, in some implementations, client devices 102 canbe implemented as desktop computers, laptop computers, tablet computers,portable devices, cell phones, media players, wearable devices (e.g.,glasses device, wristwatch device, etc.), entertainment devices(television, disc player, stereo), mainframe computer, peripherals(printer, scanner, sensors), or other electronic devices.

Wireless access points 104 are devices that allow other wireless-capabledevices to connect to a communication network and communicate with eachother. The wireless access points 104 can transmit and receive wirelesscommunication signals to and from other devices having compatiblewireless communication functionality. In the example system 100, thewireless access points 104 can transmit wireless signals to the clientdevices 102 via one or more wireless protocols, and can receive wirelesssignals from client devices 102 via such protocols. Some examples ofcurrent suitable wireless protocols include those protocols definedunder IEEE 802.11. Other protocols can also be used. Thus, the clientdevices can communicate all data traffic via wireless access points 104in range of the clients' transmitters and receivers.

Wireless access points 104 are connected to other network devicesprovided in network 101. The access points 104 can be used tocommunicate data traffic to and from client devices 102 through thenetwork. The wireless access points 104 can send data traffic fromclient devices 102 to other network devices to send the traffic to thedesired network destination. They can also receive data traffic fromother devices via the network devices to provide to the client devices102. Any of a variety of different wireless network topologies, devices,and functions can be used. For example, in some implementations,multiple virtual local area networks (VLANs) 106 can be provided, whichprovide partitions for client devices connected to the network 101 intodistinct domains that are isolated from each other. Some implementationscan provide communication between VLANs using mobility switches 108. Forexample, the wireless access points 104 can be connected (e.g., viawired connection such as Ethernet) to mobility switches 108, which canimplement mobility tunnels. Such mobility tunnels allow client devices102 to communicate via particular VLANs 106 associated with particularwireless access points 104 with which the client devices 102 arecommunicating. Various implementations can include different kinds ofswitches, hubs, routers, and other types of network devices in thenetwork 101.

One or more wireless access controllers 110, referred to herein also ascontrollers or wireless controllers, can be included in system 100.Controllers 110 are devices used to manage, control and/or configurewireless access points 104, mobility switches 108, VLANs 106, and/orother network devices or structures connected to the network 101. Insome implementations, multiple controllers 110 can be used as shown,where each controller 110 can be associated with a different VLAN 106and/or set of wireless access points 104. In some examples, if a clientdevice 102 communicates with a wireless access point 104 that isassociated with a first controller 110, and the client device then“roams” to communicate with a different wireless access point 104associated with a second controller 110, the first controller 110 canprovide the necessary information to the second controller 110 tomaintain the client connection.

In some described implementations, the wireless controllers 110 canconfigure the wireless access points 104 with changed or newfunctionality. For example, the controllers 110 can send (or cause to besent) a firmware image or other software image or code as an upgrade toone or more selected wireless access points 104. Controllers 110 canalso select or apply particular settings or functions on wireless accesspoints 104 or other devices connected to the network. Controllers 110also receive information from connected devices including wirelessaccess points 104, such as status information regarding the settings andstatus of various functions of the wireless access points 104 (e.g.,data communication, transmission, reception, readiness, etc.). In someimplementations, communication between the controllers 110 and thewireless access points 104 can be provided on dedicated controlconnections 112 (which can connect appropriate controllers 110 to allthe wireless access points 104), where the dedicated control connections112 can be separate from the connections 114 used to transmit clientdata traffic between the wireless access points 104 and VLANs 106. Inother implementations, the wireless controllers 110 can communicate withthe wireless access points 104 via connections 114 instead of or inaddition to communication over dedicated control connections 112.Controllers 110 can also communicate control information with mobilityswitches 108 and with each other via other control connections 113.

In some example implementations, an initializing wireless access point104 discovers a wireless controller 110 using a discovery protocol andestablishes a control channel with the controller 110 (e.g., associateswith one of the controllers). During its operation, the access point 104reports monitoring information to the associated controller 110. Awireless access point 104 may also (e.g., periodically) scan the air andreport any neighboring access points to its associated controller 110.For example, the access point can collect the operating channel andreceiver power information of each neighboring access point it detectsand can send it to its controller 110.

The configuration for the wireless access point 104 is defined on thecontroller 110 and can be sent to the wireless access 104 point afterthe wireless access point 104 associates with controller 110 over thecontrol channel. For example, access point profiles stored by thecontroller 110 can be used to define the access point configuration fordifferent access points. The wireless access point 104 is configuredaccording to the received configuration from the controller, 110 such asa set of configuration instructions.

In some example implementations, the configuration can include asoftware upgrade as described above. The upgrade image can be stored onstorage local to the associated controller 110 or can be stored on oneor more separate servers in communication with the wireless access point104 to be configured. For example, a wireless access point 104 candownload a software image from a server using a standard protocol suchas HTTP or TFTP. The upgrade image can be controlled and triggered by awireless controller 110, such that the controller sends a request to thewireless access point 104 to download and install the software image.For example, the wireless access point 104 can save the receivedsoftware image in a non-volatile memory partition. After the wirelessaccess point 104 has downloaded the image, it restarts (e.g., reboots)to initialize and operate with the new image. After restart, the accesspoint can go through the discovery procedure to find and establish aconnection with a wireless controller 110. At that point, the wirelessaccess point 104 is ready to service client data traffic.

An administrator device 118 connects to one or more of the wirelesscontrollers 110 to communicate with the controller. For example, theadministrator device 118 can receive status information regarding thecontroller 110 and/or the network 101. The administrator device 118 canalso manage the network 101 by sending commands and data to variousnetwork devices such as the controllers 110 to configure the controllerand/or configure other devices connected to the network 101 via thecontroller 110. An administrator or other user operating theadministrator device 118, for example, can send a command to cause aconfiguration of designated access points as described above. Theadministrator device 118 can be connected to the network 101 via anytype of network connection. For example, in some implementations, awireless management service can use a web-based front end to provide auser access to the network.

A software application stored in a memory or computer-readable storagemedium provides instructions that enable a processor to perform thesefunctions and other functions described herein.

In some implementations, client devices can be connected to the network101 via wired connections instead of or in addition to wireless links.For example, wired Ethernet links can be used.

Although implementations described herein are described in the contextof one or two edge configuration devices and one edge server device, oneof ordinary skill in the art will readily recognize that there could beany number of edge configuration devices and edge server devices.

FIG. 2 illustrates a block diagram depicting an example system 200 whichmay be used to implement some implementations described herein. System200 includes an edge server device 202, an edge configuration device204, and end devices 206, 208, and 210. In various implementations, edgeconfiguration device 204 couples to end device 206 and end device 208,which may also be referred to as client devices. The edge configurationdevice 204 is also coupled to the edge server device 202 which is inturn coupled to an SPB cloud 211. Shortest Path Bridging (SPB)(including such versions as Shortest Path Bridging-MAC, SPBM, SPBV),which is specified in the IEEE 802.1aq standard, is a computernetworking technology that simplifies the creation and configuration ofnetworks, while enabling multipath routing. One or more end devices suchas end device 210 can also be coupled directly to edge server device202, e.g., without an intermediate connection to edge configurationdevice 204. As shown in FIG. 2, edge configuration device 204, edgeserver device 202, and the end devices are separate devices.

The system 200 can be used to extend the edge of SPB cloud (fabric) 211to additional devices such as end devices 206, 208, and 210. To “extend”the SPB fabric edge, VLAN/ISID bindings should be supported on non-SPB(e.g., non-SPBM) devices, which are network devices not compatible withSPB network standards. VLAN/ISID bindings are mappings of a serviceidentifier (ISID) to a Virtual Local Area Network (VLAN) identifier.Fabric attach devices as described herein can automatically discovereach other and exchange configuration data to support fabric edgeextension. For example, fabric attach devices can send and processVLAN/ISID bindings and requests to map these identifiers to each otherfor the SPB network. Fabric attach devices pass VLAN/ISID bindings toattached SPB nodes (such as an edge server device) where the bindingsare processed and either approved or rejected. Specific actions can betaken on the non-SPBM devices (such as an edge configuration device orend device), as well as the SPBM device, based on the outcome of themapping request.

“Fabric attach” as referred to herein can refer to the ability of adevice to extend the edge of the SPB network to devices (e.g., non-SPBdevices) that are not compatible with protocols or communicationstandards used for configuring those devices on the SPB network (e.g.,not compatible with SPB standards, including SPBM, SPBV (shortest pathbridging VID (VLAN ID)), etc.). For example, in some implementations afabric attach agent, such as a procedure implemented in software and/orhardware, can run on a fabric attach device (such as a fabric attachserver or fabric attach switch/proxy) and perform fabric attach featuresas described herein. For example, a fabric attach agent can understandand send fabric attach messages (including configuration information)used between fabric attach devices to configure a device forcommunication with the SPB network. For example, in some implementationsdescribed herein, fabric attach messages can use the LLDP protocol andinclude particular TLVs (type-length-value fields).

In some implementations, edge server device 202 may also be referred toas a fabric attach server (FA server). In various implementations, edgeserver device 202 is an SPB network node that creates VLANs on portsbetween the edge configuration device 204 and the edge server device202, creates a user network interface (UNI) associating ISIDs withcreated VLANs, performs MAC-in-MAC encapsulation functions, performsintermediate system-to-intermediate system (IS-IS) configuration, addsISID fields to packets during MAC-in-MAC encapsulation, performsMAC-in-MAC decapsulation, etc. For example, in switched UNI mode, theVLAN/ISID mapping is per port of the edge server device. In C-VLAN UNImode, the VLAN/ISID mapping is per device (e.g., all ports of a device).

An edge server device 202 can exchange information not only with otheredge server devices but also with one or more edge configurationdevices. In some implementations, edge server device 202 advertises itsVLAN/ISID bindings per edge configuration device. As such, for example,edge server device 202 may send a different LLDP message to each edgeconfiguration device. In some implementations, edge server device 202may operate in customer VLAN (C-VLAN) user network interface mode andswitched UNI mode simultaneously.

Edge configuration device 204 may also be referred to as a fabric attachproxy (FA proxy), fabric attach switch (FA switch), or fabric attachhost (FA host). In some implementations, the edge configuration devicecan be a switch, router, or other network device operative tocommunicate on the network via ports. In some implementations, the edgeconfiguration device 204 is a non-SPB network device running a fabricattach agent. In various implementations, edge configuration device 204can receive SPB configuration information in fabric attach messages,after which edge configuration device 204 sends the SPB configurationinformation to edge server device 202 in fabric attach messages toapprove the configuration information and allow the edge server device202 to create VLANs. For example, in various implementations, edgeconfiguration device 204 adds a VLAN tag, and/or VLAN/ISID bindings, toa packet that is sent to the edge server device 202. In someimplementations, edge server device 202 can use that information toperform MAC-in-MAC encapsulation. The edge configuration device 204 cancreate VLANs in its own memory based on the SPB configurationinformation after the edge server device 202 has sent its approval ofthe SPB configuration information.

In some implementations, each of the edge server device 202 and the edgeconfiguration device 204 has a command-line interface (CLI), alsoreferred to as a command-line user interface. A CLI enables a user tointeract with a computer program where the user/customer/client issuescommands to a program in the form of successive lines of text (commandlines).

End device 206, end device 208, and other end devices are coupled toaccess ports of the edge configuration device 204. Some end devices suchas end device 210 can be coupled to one or more ports of edge serverdevice 202 without an intermediate connection to an edge configurationdevice 202. Possible end devices may include wireless access points,mobile devices such as smart phones, tablet computers, and wearabledevices, cameras, laptop computers, desktop computers, and other clientdevices. In some implementations, a fabric attach end device can be anon-SPB device that supports some form of VLAN/ISID binding definitionand, if connectivity permits, has the ability to advertise this data toa directly connected fabric attach edge configuration device 204 (e.g.,with external end device support enabled) or fabric attach edge server202. Non-fabric attach end devices may not support such bindingdefinitions directly.

Implementations described herein can enable configuration of an SPBnetwork to include a non-SPB end device 206 in the SPB functionality ofthe network automatically upon connection of the end device 206 to oneor more ports of the edge configuration device 204. Functions such asISID usage can be configured on the network for the end device 206 usingthe fabric attach messages described herein. This configuration can beperformed even if the end device 206 is not compatible with protocols orcommunication standards used for fabric attach configuration devices onthe SPB network (e.g., not compatible with fabric attach messages andnot having a fabric attach agent running on them).

For example, as described in greater detail below, in someimplementations the edge configuration device 204 can obtainauthentication and configuration information for an end device 206 froma source such as an access control server 212 connected to the SPB cloud211. The access control server 212 can include or be in communicationwith an authentication server or module 214, e.g., the access controlserver 212 can act as an authentication server for authentication of anend device. The edge configuration device 204 can send the configurationinformation to the edge server device 202 for creation of one or moreVLANs of the SPB network for the end device, port assignment for createdand/or established VLAN(s), port tagging, etc. Some examples of suchimplementations are described in greater detail below with respect toFIGS. 11 and 12.

In some implementations, a management server 216 is connected to the SPBcloud or is connected to another network. The end device 208 cancommunicate directly with a management server 216 to obtainconfiguration information from that server (and the management server216 can authenticate the end device 208, e.g., via the authenticationmodule 214), and then the end device 208 can send that configurationinformation to the edge configuration device 204 using fabric attachmessages to cause the configuration of the end device on the SPBnetwork. Some examples of such implementations are described in greaterdetail below with respect to FIG. 13.

For ease of illustration, some implementations are described herein inthe context of one edge server device, one edge configuration device,and one end device. These implementations and others also apply tomultiple edge server devices, multiple edge configuration devices,and/or multiple end devices.

In some implementations, an edge configuration device can connect to aserver cluster device, e.g., a single logical server that includes twopeer server devices that are connected to each other. Each peer serverdevice can ensure that it is creating the same UNI and VLANs as theother peer server device in the logical server, as described in greaterdetail below with respect to FIGS. 14 and 15.

Boot Up of an Edge Configuration Device

In various implementations, each edge server device and each edgeconfiguration device can broadcast its device type on the networkconnected to these devices. In some implementations, each edge serverdevice and each edge configuration device also broadcasts its functionalcapabilities. Some implementations can designate specific “fabricattach” device types and “fabric attach” functional capabilities todistinguish such device types and capabilities from other device typesand capabilities that may be sent over the network. In someimplementations, each edge server device and each edge configurationdevice broadcasts its device type and functional capabilities in an LLDPmessage. For example, in some implementations, when the edgeconfiguration device and the edge server device are powered up, and whenLLDP is enabled in both the edge configuration device and the edgeserver device, the edge configuration device broadcasts that it is anedge configuration device (e.g., “I am an edge configuration device”)within its LLDP message, and the edge configuration device transmits itsedge configuration capability out all its ports. Also, the edge serverdevice can broadcast that it is an edge server device (e.g., “I am anedge server device”) within an LLDP message. Based on this LLDP messageexchange, the edge configuration device knows which of its ports areuplink ports to the edge server device. In some implementations,selective device advertisements (e.g., “I am an edge server device”) canbe sent by an FA device, e.g., directed to particular other devicesbased on advertisements received from those other devices.

In some implementations, within an LLDP message, the edge server devicealso informs the edge configuration device the identifier (e.g., value)of a management VLAN, if a management VLAN is implemented. For example,in some implementations, the management VLAN is 1 (by default). In someimplementations, if an IP address is not manually configured in the edgeconfiguration device, and dynamic host configuration protocol (DHCP) isenabled in the edge configuration device, the edge configuration devicethen requests an IP address via DHCP. This IP address acquisitionthrough DHCP can be initiated by the edge configuration device based onthe fabric attach messages received in the LLDP message, and/or otherfabric attach signaling with an edge server device. In someimplementations, if an IP address is not manually configured in the edgeconfiguration device, and a DHCP server is not reachable, the edgeconfiguration device may still be configured via its console port.

Although there may be repeaters between the edge configuration deviceand the edge server device, LLDP messages transmitted by the edgeconfiguration device are received by the edge server device, and LLDPmessages transmitted by the edge server device and received by the edgeconfiguration device. That is, in various implementations, the edgeconfiguration device and the edge server device rely on LLDP messages,and not on physical link-up/link-down events, to determine the edgeconfiguration device/edge server device connection.

In some implementations, LLDP messages include type-length-value (TLV)fields according to a fabric attach standard or protocol. In someimplementations, there may be two separate TLVs in an LLDP message. OneTLV, which may be referred to as a fabric attach element TLV, canindicate a device type (e.g., edge server device, edge configurationdevice, etc.) when a device is powered on or is otherwise enabled. Invarious implementations, all devices send out LLDP messages when poweredon to indicate their device type. Another TLV, which may be referred toas a fabric binding TLV, includes requests for bindings in the edgeconfiguration device, and approval indications or denial indications forsuch requests. For example, edge configuration devices can includerequests for binding in LLDP messages sent to an edge server device.Also, edge server devices can include approval indications and/or denialindications in LLDP messages to edge configuration devices.

Message Transmission in Networks

FIG. 3 illustrates an example simplified flow diagram for transmittingmessages in networks, according to some implementations. Referring toboth FIGS. 2 and 3, the method is initiated in block 302, where edgeconfiguration device 204 of system 200 enables provision of shortestpath bridging (SPB) configuration information. In some implementations,the user can provide SPB configuration information at an edgeconfiguration device 204, where the user can enter SPB configurationinformation using a CLI. In other implementations as described below,the edge configuration device can enable reception of the SPBconfiguration information from other sources, such as a remote source(e.g., server) or a connected end device.

In block 304, edge configuration device 204 of system 200 receives theSPB configuration information from a source (e.g., remote source, enddevice, or user). In some implementations having manual input by a user,a user performs the SPB configuration at edge configuration device 204instead of inputting the information and manually performing theconfiguration at edge server device 202.

In block 306, edge configuration device 204 of system 200 sends the SPBconfiguration information to edge server device 202. In variousimplementations, the SPB configuration information is sent in an LLDPmessage. In some implementations, the SPB configuration information issent from edge configuration device 204 to edge server device 202 in anLLDP message. In various implementations, edge configuration device 204and edge server device 202 exchange various types of information (e.g.,VLAN-to-ISID mapping information, binding requests, approvalindications, etc.) in LLDP messages.

In various implementations, the SPB configuration information includesvirtual local area network-to-service identification (VLAN-to-ISID)mapping information. As described in more detail below in connectionwith FIG. 4, in various implementations, the SPB configurationinformation enables provider backbone bridge (MAC-in-MAC) encapsulationat edge server device 202. As described in more detail below inconnection with FIG. 5, in various implementations, the SPBconfiguration information enables intermediate system-to-intermediatesystem (IS-IS) configuration at edge server device 202.

Enabling Configuration in Networks

FIG. 4 illustrates an example simplified flow diagram for enablingconfiguration in networks, according to some implementations. Referringto both FIGS. 2 and 4, the method is initiated in block 402, edge serverdevice 202 of system 200 receives a message from edge configurationdevice 204, where the message contains SPB configuration information. Invarious implementations, the message is an LLDP message.

In block 404, edge server device 202 of system 200 performs anintermediate system-to-intermediate system (IS-IS) configuration inresponse to receiving the message. In various implementations, IS-IS isa routing protocol designed to efficiently transmit information within acomputer network. In various implementations, IS-IS involves thetransmission of control packets, where the IS-IS broadcasts IS-IS Hello(IIH) packets to discover neighboring IS-IS routers, and to determinewhether the neighbors are level 1 or level 2 routers. This is how IS-ISinitializes and maintains adjacencies between neighboring routers.

In various implementations, after edge server device 202 receives themessage, edge server device 202 performs the IS-IS configuration. Invarious implementations, the performing of the IS-IS configuration isinitiated in response to receiving the message. In other words, thereceipt of the message triggers the IS-IS configuration. In variousimplementations, the IS-IS configuration is enabled by the SPBconfiguration information provided by edge configuration device 204.

As described in more detail below, in various implementations, system100 or 200 performs an SPB configuration in response to receiving themessage, where the performing of the SPB configuration is enabled by theSPB configuration information provided by edge configuration device 204.

Enabling Encapsulation in Networks

FIG. 5 illustrates an example simplified flow diagram for enablingencapsulation in networks, according to some implementations. Referringto both FIGS. 2 and 5, the method is initiated in block 502, where edgeserver device 202 of system 200 receives a message from edgeconfiguration device 204, where the message contains SPB configurationinformation. In various implementations, the message is an LLDP message.As indicated above, in some implementations, the SPB configurationinformation is received by edge configuration device 204. In variousimplementations, the SPB configuration information includes VLAN-to-ISIDmapping information. Example implementations directed to SPBconfiguration at an edge configuration device is described in moredetail below.

In block 504, edge server device 202 of system 200 performs MAC-in-MACencapsulation in response to receiving the message. In variousimplementations, the MAC-in-MAC encapsulation is enabled by the SPBconfiguration information provided by the edge configuration device. Invarious implementations, the performing of the MAC-in-MAC encapsulationis triggered/initiated in response to receiving the message.

In various implementations, edge configuration device 204 includesrequests for bindings along with the desired VLAN-to-ISID mappinginformation in the LLDP message. In various implementations, edge serverdevice 202 approves or rejects the request and VLAN-to-ISID mappinginformation. If edge server device 202 approves, edge server device 202transmits an approval indication back to edge configuration device 204.Once the VLAN-to-ISID mapping information is approved, the VLAN-to-ISIDmapping information is activated at edge server device 202. In someimplementations, the edge configuration device uplink port configurationoccurs automatically upon VLAN/ISID binding approval. In someimplementations, the edge configuration device access port configurationmay occur manually by a user.

In some implementations, if edge server device 202 denies/does not grantan approval of the request and VLAN-to-ISID mapping information, edgeserver device 202 provides a rejection indication to the edgeconfiguration device.

SPB Configuration in an Edge Configuration Device

In various implementations, the desired VLAN-ISID mappings (alsoreferred to as VLAN/ISID bindings) are configured in the edgeconfiguration device. The edge configuration device sends the desiredbinding list to the edge server device (e.g., “Here is what I want todo”). The edge server device sends the approved binding list to the edgeconfiguration device (e.g., “Here is what you are allowed to do”). Thebinding list is embedded in the LLDP messages between the edge serverdevice and the edge configuration device. In some implementations, itmay be desirable that the edge server device also sends a rejectedbinding list to the edge configuration device.

In various implementations, the edge configuration device and the edgeserver device may be connected via an uplink port in the edgeconfiguration device, or via an uplink multi-link trunking (MLT). Insome implementations, in a redundant configuration, the edgeconfiguration device may connect via distributed multi-link trunking(DMLT) to a master/slave the edge server device/the edge server device′pair (where the edge server device/the edge server device′ pair isconnected via IST). In some implementations, the edge configurationdevice may connect via distributed multi-link trunking (SMLT) todifferent physical units connected by an IST that create a logicalunit). In some implementations, because customer packets from the edgeconfiguration device to the edge server device contain VLAN information,but do not contain source port information, the edge configurationdevice operates in CVLAN UNI mode. As such, in some implementations,only an VLAN/ISID binding needs to be configured in the edgeconfiguration device.

Considering an example implementation where the user wants to map VLAN 5to ISID 500. In the edge configuration device, VLAN 5 is created and theaccess ports that are members of VLAN 5 are specified (e.g.,configuration information specifies the VLAN and ports, or a usermanually creates VLAN 5 and manually specifies which access ports aremembers of VLAN 5). Once the 5/500 binding is approved by the edgeserver device, VLAN 5 is automatically enabled on the edge configurationdevice's uplink ports, and VLAN 5 packets egress tagged on the edgeconfiguration device's uplink ports. In some implementations, only theedge configuration device's uplink port configuration occursautomatically when a VLAN/ISID binding is approved by the edge serverdevice. In the edge configuration device, VLAN creation and access portVLAN membership can be entered manually in some implementations, orthese can be determined automatically based on configuration informationobtained from another source. When the edge server device receives apacket from the edge configuration device with VLAN 5, the edge serverdevice can MAC-in-MAC-encapsulate the packet with ISID 500, for example.

SPB Configuration in an Edge Server Device

In some implementations, SPB configuration may occur directed at theedge server device, where the edge server device maps a VLAN identifier(ID) to an ISID. In switched UNI mode, the VLAN/ISID mapping is per portin the edge server device. For example, VID 5 may map to ISID 500 onport 1, while VID 5 may map to ISID 501 on port 2. In customer VLAN-usernetwork interface (CVLAN UNI) mode, the VLAN/ISID mapping is per theedge server device. For example, VID 6 may map to ISID 600 on all portsin the edge server device. The edge server device may operate in CVLANUNI mode and switched UNI mode simultaneously.

There can be much SPB configuration that occurs at the edge serverdevice. In some implementations, VLAN/ISID bindings may be configured atthe edge server device, whether in CVLAN UNI mode or in switched UNImode. However, it may be preferred not to configure SPB on at the edgeserver device due to its complexities, and to configure SPB at the edgeconfiguration device due to its simplicity.

In some implementations, only switched UNI bindings are input and/orconfigured in the edge server device. In some implementations, CVLAN UNIcan be entered directly in the edge server device.

In an example implementation, a VLAN/ISID binding is implemented to mapVLAN 5 to ISID 500. In some examples, the edge configuration devicereceives this binding information as configuration information fromeither an access control server or an end device. The edge configurationdevice maintains a list of locally generated VLAN/ISID bindings. In someimplementations, if VLAN 5 already maps to a different ISID (such asISID 600), the edge configuration device can immediately output an errormessage to a server or a user management device, since a VLAN can map toonly one ISID in the edge configuration device in some implementations.If binding VLAN 5 to ISID 500 is acceptable from the edge configurationdevice's perspective, the edge configuration device adds the 5/500binding to its desired binding list in the LLDP packet it transmits tothe edge server device.

In switched UNI mode, the VLAN/ISID binding is per port in the edgeserver device, so the edge server device will not deny any validVLAN/ISID binding request from the edge configuration device (e.g., avalid binding request being one that the edge server device is able tofulfill, e.g., not a request that specifies a VLAN that already existsbut is not the correct type). Thus, the edge server device accepts the5/500 binding on its port that connects to the edge configurationdevice. The edge server device adds the 5/500 binding to its approvedbinding list in the LLDP packet it transmits to the edge configurationdevice. The edge configuration device will determine when the 5/500binding has been approved by the edge server device by checking for the5/500 binding in the approved binding list in the edge server device'sLLDP message to the edge configuration device. As indicated above, theVLAN/ISID binding is not activated in the edge configuration deviceuntil the edge server device approves the VLAN/ISID binding.

FIG. 6 through FIG. 10 describe an example scenario in which VLAN/ISIDbindings are configured on an edge server device and an edgeconfiguration device 204. The VLAN/ISID binding is provided from asingle edge configuration device (switched UNI mode). In variousimplementations, the label “ESD” in the figures represents VLAN/ISIDbindings at an edge server device, and the label “ECD” in the figuresrepresents VLAN/ISID bindings at an edge configuration device.

FIG. 6 illustrates example binding lists, according to someimplementations. As shown, in this particular scenario, both the edgeserver device and the edge configuration device initially have emptybinding lists.

FIG. 7 illustrates example binding lists, according to someimplementations. As shown, VLAN 6 is created in the edge configurationdevice, e.g., after a VLAN/ISID binding is accepted by the edge serverdevice, and based on configuration information received at the edgeconfiguration device from a server, end device, or user (e.g., via aCLI), etc. One or more access ports are placed in VLAN 6 based on theconfiguration information. A 6/600 binding is instructed via theconfiguration information. The edge configuration device places 6/600 inits local pending binding list.

FIG. 8 illustrates example binding lists, according to someimplementations. As shown, the edge configuration device places 6/600 inits desired binding list in its LLDP message to the edge server device.The edge server device then receives the LLDP message from the edgeconfiguration device, with the desired 6/600 binding. The edge serverdevice then places 6/600 in its remote pending binding list. Since 6/600is a desired binding in switched UNI mode, the edge server deviceapproves the 6/600 binding on its UNI port that connects to the edgeconfiguration device. The following configuration updates occurautomatically in the edge server device: VLAN 6 is created (if VLAN 6does not already exist in the edge server device); the UNI port thatconnects to the edge configuration device is placed in VLAN 6; and VLAN6 is mapped to ISID 600 on the UNI port that connects to the edgeconfiguration device.

FIG. 9 illustrates example binding lists, according to someimplementations. As shown, the edge server device moves the 6/600binding from its remote pending binding list to its remote approvedbinding list, and adds the 6/600 binding, or “6/600,” in its approvedbinding list in its LLDP message to the edge configuration device.

FIG. 10 illustrates example binding lists, according to someimplementations. As shown, the edge configuration device receives theLLDP message from the edge server device, and notices that 6/600 is inthe approved binding list. The edge configuration device moves the 6/600binding from its local pending binding list to its local approvedbinding list.

In various implementations, once 6/600 has moved to the edgeconfiguration device's local approved binding list, the edgeconfiguration device enables the 6/600 binding by automatically enablingVLAN 6 on its uplink ports and enabling tagged packet transmission onthe uplink ports for VLAN 6. Based on acceptance of the bindings by theedge server device, the edge configuration device can also create theVLAN in its memory and associate access ports with the VLAN.

At this point, the edge server device begins to receive VLAN-6-taggedpackets from the edge configuration device. The edge server device canperform MAC-in-MAC encapsulation, and maps VLAN 6 to ISID 600, but onlyon the UNI port that connects to the edge configuration device.

In various implementations, it is preferable that the edge server devicemaintains its VLAN/ISID bindings per edge configuration device. That is,a first edge configuration device does not know about the VLAN/ISIDbindings input to a second edge configuration device, and the secondedge configuration device does not know about the VLAN/ISID bindingsinput to the first edge configuration device N1. In someimplementations, if the edge server device is able to generate only oneglobal version of its LLDP message, then the edge configuration deviceidentifying information would need to be added to the edge serverdevice's approved VLAN/ISID binding list. If the edge server device cangenerate an individual LLDP message per port, the edge server device cansend VLAN/ISID bindings specific to that port.

Storage of SPB Information in Configuration Files

In some implementations, if the VLAN/ISID bindings are added in the edgeserver device, the VLAN/ISID bindings may be considered local bindings,because these VLAN/ISID bindings were explicitly entered in the edgeserver device. In some implementations, these local VLAN/ISID bindingsmay be stored in the edge server device's configuration (config) file.

In some implementations, VLAN/ISID bindings are added in the edgeconfiguration device. As such, the edge server device maintains a listof local bindings (entered in the edge server device) and a list ofremote bindings (received from the edge configuration device). The localbindings are stored in the edge server device's configuration (config)file. In some implementations, the remote bindings are lost during anedge server device reset, and the remote bindings are re-establishedwhen the edge server device and the edge configuration device begin tocommunicate after a device reset.

From the edge configuration device's perspective, any VLAN/ISID bindingsreceived as configuration information in the edge configuration device(e.g., from other sources than the edge server device) would be localbindings; these local bindings are stored in the edge configurationdevice's configuration file. For example, the edge configuration devicecan store an approved local binding list (e.g., bindings accepted by theedge server device) and a pending local binding list (i.e., bindingsreceived at the edge configuration device, but not yet accepted by theedge server device).

Device Resets

The following describes what happens when an edge server device or anedge configuration device resets (or network connectivity to thesedevices is lost, perhaps due to an unplugged cable).

As described herein, the edge server device's local bindings areretained in the edge server device's configuration. If an edge serverdevice resets, any remote bindings received from the edge configurationdevice (or an end device) are lost. As binding requests are receivedfrom the edge configuration device's (or end devices), the edge serverdevice validates the binding requests, and adds the approved bindings tothe approved binding list in its outgoing LLDP messages. The edgeconfiguration device detects that the approved binding list from theedge server device has either disappeared (while the edge server deviceis resetting) or is shorter (due to the edge server device purging itsremote bindings). The edge configuration device contracts its approvedlocal binding list, and moves those bindings into its pending localbinding list. In some implementations, these pending local bindings moveto the approved local binding list only after the edge server device hasapproved the bindings. When a binding moves from the approved localbinding list to the pending local binding list, the edge configurationdevice can remove the uplink ports from those VLANs, as well as possiblydeleting the VLAN and clearing the VLAN memberships on access ports.

As described herein, the edge configuration device's local bindings areretained in the edge configuration device's configuration. If an edgeconfiguration device resets, any remote bindings received from enddevices are lost. In some implementations, the edge configurationdevice's local bindings are not restored following a reset, and VLANsettings related to these bindings may be cleaned up following a resetand binding deletion. In other implementations, the edge configurationdevice's local bindings can be placed in its pending local binding list,and the edge configuration device can populate its LLDP message with thepending local bindings. The bindings move to the edge configurationdevice's approved local binding list after the edge server device hasapproved the bindings (by the edge server device adding the bindings toits LLDP message back to the edge configuration device).

With regard to fabric attach settings, in some implementations, anyartifacts that occur dynamically (in the edge configuration device orthe edge server device) upon a VLAN/ISID binding approval, areautomatically removed when the VLAN/ISID binding request is deleted. Thegoal is to not leave any fabric attach settings in the edgeconfiguration device or the edge server device.

In some implementations, an edge configuration device supports onlyC-VLAN UNIs (since these are non-SPBM devices) whereas a edge serverdevices can support both switched UNIs (e.g., can be created throughfabric attach signaling) and C-VLAN UNIs. Bindings may be received bythe edge configuration device or the edge server device via end device,remote source, or user (e.g., CLI).

Dynamic Actions in the Edge Configuration Device (when a C-VLAN UNIBinding is Entered in the Edge Configuration Device)

In some implementations, when a VLAN/ISID binding request is received bythe edge configuration device from a different server, end device, oruser, and the binding request is approved by the edge server device, thefollowing actions can occur dynamically in the edge configurationdevice. The VLAN can be created at the end configuration device, theVLAN is enabled on the edge configuration device's uplink ports, accessport updates (VLAN membership, tagging status) can be made, and packetsin that VLAN are transmitted tagged on the edge configuration device'suplink ports.

In some implementations, when the VLAN/ISID binding is deleted in theedge configuration device, the VLAN uplink membership may be deleted(unless it was manually configured prior to acceptance of the binding).If the VLAN is no longer associated with the uplink, no traffic for theVLAN will be transmitted on the uplink. The VLAN itself can also bedeleted and all VLAN memberships that were dynamically updated based onFA processing may also be removed. In other implementations, when thebinding is deleted, the software in the edge configuration device candisable the VLAN on the configuration device's uplink ports, andtransmit packets in that VLAN untagged on the edge configurationdevice's uplink ports.

Dynamic Actions in the Edge Server Device (when a C-VLAN UNI Binding isEntered in the Edge Configuration Device)

In some implementations, when an VLAN/ISID binding request is receivedby the edge configuration device from a different server, end device, oruser, and the binding request is approved by the edge server device, thefollowing actions can occur dynamically in the edge server device. TheVLAN is created (if the VLAN does not already exist in the edge serverdevice); the UNI port that connects to the edge configuration device isplaced in the VLAN; and the VLAN is mapped to the ISID on the UNI portthat connects to the edge configuration device (e.g., a switched UNI iscreated for the UNI port).

In some implementations, when the VLAN/ISID binding request is deletedin the edge configuration device, and this deletion is detected in theedge server device, the software in the edge server device can deleteVLANs that were previously dynamically created, remove the UNI port thatconnects to the edge configuration device from the VLAN, and delete theVLAN/ISID binding on the UNI port that connects to the edgeconfiguration device.

The VLAN created in the edge server device can be a fabric attachartifact when a VLAN/ISID binding request from the edge configurationdevice is deleted. Dynamically created VLANs can be deleted on edgeserver devices if they are not in use once the binding in question isdeleted. The VLAN thus will not remain an artifact.

In some implementations, a user can perform SPB configuration directlyin the edge server device. Thus, the user might manually create a VLANin the edge server device, and manually add the desired ports to theVLAN, when entering the VLAN/ISID binding in the edge server device.

FIG. 11 is a flow diagram illustrating an example method 1100 forauthenticating a device for use on a network, e.g., an end device(client device). Method 1100 can be implemented, for example, by an edgeconfiguration device connected to a network as described above. Prior tothe method, an edge configuration device and an edge server device canestablish communication and can be set up and connected to the network,e.g., an SPB network as described above with respect to FIG. 2. An enddevice can be connected to the edge configuration device, e.g.,similarly as described above for FIG. 2. The end device can be a non-SPBnetwork device that is not compatible with SPB protocols and cannotutilize the SPB network functionality. In this example, the end devicecan be either a fabric attach device that, for example, runs a fabricattach agent and can communicate SPB configuration information asdescribed above, or can be a non-fabric attach device that does notunderstand or know the fabric attach formatted SPB configurationinformation.

In block 1102, the edge configuration device receives information froman end device that has been connected to the network. In some examples,the end device may have been connected to a port of the edgeconfiguration device and/or powered on. In some implementations, the enddevice can be compatible with a fabric attach feature causing the enddevice to broadcast the information, including identity information, inTLVs on the network, e.g., as described above. In some implementations,the end device is not compatible with the fabric attach feature. Someimplementations of non-fabric attach end devices may have the end deviceautomatically send identity information to a connected device on thenetwork. The identity information can be sent out automatically by theend device upon its connection to the edge configuration device, uponits power-up, or upon some other condition of the end device.

The identity information identifies the end device and/or one or moreaccounts/users associated with the end device. In one example, theidentity information can include an identifier (e.g., user name oraccount name) and/or password. In some other examples, the identityinformation received from the end device can include other types ofinformation. For example, the identity information can include a MAC(Media Access Control) address for the end device. In someimplementations, the identity information can include an identificationof a type of the end device. For example, types can include a wirelessaccess point, a cell phone, a tablet computer, a laptop computer, aprinter, a desktop computer, or other type of device, e.g., based on apredetermined mapping of identifiers to device types. In someimplementations, the information received from the end device includesthe identity information and a specific request for the end device to beauthenticated for access to the network (e.g., a network such as the SPBcloud of FIG. 2). in other implementations, the edge configurationdevice can treat the identity information as such a request for accessfor the end device. In some implementations, the identity informationcan include other information not related to the identity of the enddevice or associated user.

In block 1104, the edge configuration device sends a request to anaccess control server for authentication of the end device, e.g., theaccess control server 212 of FIG. 2. In some implementations, the accesscontrol server can be connected to the SPB cloud 211, so that the edgeconfiguration device can communicate with the access control serverthrough a connected edge server device and though the SPB cloud 211. Forexample, the edge configuration device can be provided with the addressof the access control server in its memory or other storage.

As described above with reference to FIG. 2, the access control serverincludes or is connected to an authentication module 214. Theauthentication module can be implemented using any suitable standardsand implementations, e.g., as a RADIUS server. The access control serverreceives the identity information from the edge configuration device andprovides the identity information (or a processed form of the identityinformation) to the authentication module. In some implementations, theauthentication module can compare the identity information from the enddevice to data describing authenticated devices or types of devices.Such data can be stored by the access control server or is otherwiseaccessible to the authentication module. The authentication moduledetermines and verifies whether the end device is authentic, e.g., avalid device allowed to connect to the SPB network of SPB cloud 211. Forexample, if the identity information includes a account name (e.g., username) and password, the authentication module can determine whether theuser name and password are valid as matched in its stored data. If theidentity information includes a MAC address, the authentication modulecan check whether the MAC address is valid and whether it is allowed orprohibited from access the network, e.g., by matching it to stored dataof validated MAC addresses. If the identity information includes a typeof device, the authentication module can determine whether that type ofdevice is allowed to connect to the network by checking a stored list ofallowed types of devices. For example, in some implementations, anauthentication framework or standard such as Extensible AuthenticationProtocol (EAP), Negotiated EAP (NEAP), and/or IEEE 802.1X can be usedfor the authentication module and communication with the authenticationmodule.

In block 1106, the edge configuration device receives permissioninformation for the end device from the access control server. Based onthe result of the authentication process, the authentication moduleoutputs this permission information indicating whether the end device isallowed or denied access to the SPB network. The authentication modulesends this permission information to the edge configuration device,e.g., via the SPB cloud and edge server device connected to the edgeconfiguration device.

In block 1108, the edge configuration device enables or denies itsconfiguration to allow network access for the end device based on thepermission information. For example, if the permission informationindicates that the end device is valid and is allowed to access thenetwork, the end device has been authenticated and the edgeconfiguration device can begin the configuration process. Some examplesof a configuration process using configuration information obtained froma remote source are described below. Alternatively, the edgeconfiguration device can configure access for the end device usingconfiguration information obtained from another source, e.g., manualentry from a user in a CLI, etc.

In some implementations, the edge configuration device provides arequest for configuration information with or in addition to the requestfor authentication sent in block 1104, and the access control server cansend configuration information with the permission information to theedge configuration device. Such configuration information is describedin greater detail below with respect to FIG. 12.

FIG. 12 is a flow diagram illustrating an example method 1200 forconfiguring a network for a client device based on configurationinformation obtained by an edge configuration device. Method 1200 can beimplemented, for example, by an edge configuration device connected to anetwork as described above. Prior to the method, an edge configurationdevice and an edge server device can establish communication and can beset up and configured on the network, e.g., an SPB network as describedabove. An end device (e.g., client device) can be connected to the edgeconfiguration device, e.g., similarly as described above for FIG. 2. Theend device can be a non-SPB device that is not compatible with SPBprotocols and cannot utilize SPB network functionality. In this example,the end device can be either a fabric attach device that, for example,runs a fabric attach agent and can communicate SPB configurationinformation as described above, or can be a non-fabric attach devicethat does not understand or know the fabric attach formattedconfiguration information.

In block 1202, the edge configuration device receives identityinformation from an end device. In some implementations, this block canbe similar to block 1102 of FIG. 11, e.g., the identity information canbe an account name and password, MAC address, indicator of type of theend device, and/or other information, which is sent out automatically bythe end device upon its connection to the edge configuration device,upon its power-up, or upon some other condition of the end device.

In block 1204, the edge configuration device sends a request forconfiguration information to a remote source, such as a remote server.The remote server is remote since it is connected to the edgeconfiguration device through a network. In the example of FIG. 2, theremote server is not the connected edge server device, but is anotherserver. For example, the edge configuration device sends a request to anaccess control server to request configuration information with respectto the end device. For example, the request can be sent to accesscontrol server 212 of FIG. 2. In some implementations, the accesscontrol server can be connected to the SPB cloud 211, so that the edgeconfiguration device can communicate with the access control serverthrough the connected edge server device and though the SPB cloud 211.For example, the edge configuration device can be provided with theaddress of the access control server in its memory or other storage. Insome implementations, for example, the access control server can be aserver that is not an edge server device using the fabric attachmessages described herein. In some implementations, for example, theaccess control server can provide policy enforcement for the network.

In some implementations, the request can include the identityinformation received in block 1202, or can be a general request forconfiguration information for an end device. For example, in someimplementations, the request can accompany a request for authenticationof the end device as described above with reference to FIG. 11, e.g.,where the access control server includes or is in communication with anauthentication module. In some implementations, the edge configurationdevice can insert additional information in the request based on theidentity information. For example, if the identity information indicatesa particular type of end device, then the edge configuration device canadd particular information related to requesting configurationinformation for such a device. In some implementations, the edgeconfiguration device can provide a particular type of request (e.g.,including particular or different information) based on a particularaccount name, type of end device, MAC address, or other identityinformation. For example, one request for a first end device can includedifferent information than a second request for a second end device,based on particular account names, types of end device, or MAC addressesidentifying the end devices.

The access control server receives the request for configurationinformation from the edge configuration device and processes therequest. For example, in some implementations this processing caninclude determining one or more VLAN/ISID bindings for the network andfor the end device, based on the current network state as known by theaccess control server. For example, a predetermined set of bindings canbe associated with particular end devices, user accounts, MAC addresses,and/or types of devices. The access control server can consult storedtables and other information to determine VLAN/ISID bindings.

In block 1206, the edge configuration device receives the configurationinformation from the access control server, where the access controlserver has sent the configuration information over the SPB cloud 211 andthrough the edge server device connected to the edge configurationdevice. In block 1208, the edge configuration device sends theconfiguration information to the edge server device that is connected tothe edge configuration device. For example, the edge configurationdevice can provide LLDP packets to the edge server device including thisconfiguration information, as described above. The edge server devicedetermines whether the configuration information is valid, e.g., whethereach VLAN/ISID assignment in the configuration information is acceptableto the server based on resource limitations and/or any restrictionsrelated to the edge configuration device. If valid, a fabric attachagent on the edge server can perform one or more actions, e.g., createthe VLANs and define switched UNIs in its memory, enable port tagging(on the port connecting the edge server device and edge configurationdevice), etc., if needed (such actions may not be needed if a specifiedVLAN/ISID assignment is already associated with the ingress interface(edge configuration device downlink)). If not valid, the edge server candecline to create any new VLAN/ISID bindings based on the configurationinformation.

In block 1210, the edge configuration device receives information fromthe edge server device indicating approval (acceptance) or rejection ofthe configuration information by the edge server device. For example, ifthe edge server device approves the configuration information, then theconfiguration information is valid and suitable for configuring thenetwork. If the edge server device rejects the configurationinformation, then the configuration information was found to be invalidand unsuitable for configuring the network. In some implementations, theinformation can be sent via LLDP packets. Some implementations canreceive a “rejected” state from the edge server as well as an indicationas to why the rejection occurred.

In block 1212, the edge configuration device configures itself toprovide access of the end device to the network based on theconfiguration information if the configuration information was approvedby the edge server device. For example, the edge configuration devicecan create port-based VLANs in its memory (if the VLANs do not alreadyexist), assign port(s) of the edge configuration device to the createdVLAN(s), assign a tagged port status to assigned ports, etc., based onthe configuration information. Thus, in some implementations, the edgeconfiguration device can provision one or more network services (orvirtual services) for the end device. Each VLAN associated withVLAN/ISID binding in the configuration information can be defined on theedge configuration device, where the port associated with the uplinkconnecting the edge configuration device with the edge server is memberof the VLAN(s) in the VLAN/ISID assignment list (bindings) that is sentto and accepted by the edge server, thus allowing traffic on those VLANsto pass through the edge configuration device into the SPB fabric whenrequired. Traffic on the uplink port is tagged to ensure that VLANmarkings are maintained on packets between edge configuration devices,switches, and other devices in the network. In some implementations, theedge configuration device can send configuration information to the enddevice so that the end device can configure the binding information andVLANs in its own memory. If the edge server rejected the configurationinformation, then the edge configuration device can perform any requiredclean-up tasks for its own memory and setup and log the rejection inblock 1212.

FIG. 13 a flow diagram illustrating an example method 1300 forconfiguring a network for an client device based on configurationinformation obtained by a client device. Method 1300 can be implemented,for example, by an end device (e.g., client device) that has beenconnected to a network as described above. Prior to the method, an edgeconfiguration device and an edge server device can establishcommunication and can be set up and configured for a network, e.g., anSPB network as described above. An end device can be connected to theedge configuration device, e.g., similarly as described above for FIG.2. The end device can be a non-SPB device that is not compatible withSPB protocols and cannot utilize SPB network functionality. The enddevice can also be a fabric attach network device (e.g., running afabric attach agent) that is able to communicate SPB configurationinformation to other fabric attach devices in a fabric attach format.

In block 1302, the end device sends a request for configurationinformation to a remote source, e.g. a remote server. The remote serveris remote since it is connected to the end device through a network. Inthe example of FIG. 2, the remote server is not the connected edgeserver device, but is another server. For example, the end device sendsa request for configuration information to a management server, e.g.,management server 216 shown in FIG. 2. For example, the request can befor SPB configuration information that can be used to configure one ormore network devices to allow the end device to communicate with the SPBnetwork. In some implementations, the request can include identityinformation describing the end device and/or one or more accounts/usersassociated with the end device, similarly as described above for FIGS.11 and 12. In some implementations, the request for configurationinformation can be sent by the end device in response to the end devicebeing connected to the edge configuration device, e.g., the end devicesenses the edge configuration device by receiving fabric attachinformation from the edge configuration device (which can be in responseto the end device sending out information on the connection).

In some implementations, the end device can have an independentconnection to the management server that is not part of an SPB network,such as a wireless connection, a wired connection, a connection on adifferent non-SPB network, etc. This allows the end device to connect tothe management server before being established and able to communicateon the SPB network. The management server can be implemented in anysuitable manner. In some implementations, for example, the managementserver can be a server that is not an edge server device using thefabric attach messages described herein. In some implementations themanagement server can provide monitoring, operation, and/or managementabilities for one or more networks, e.g., a WLAN Orchestration System(WOS) server available from Avaya Inc. of Santa Clara, Calif.

The management server can be previously provided with and storeconfiguration information for the SPB network. For example, a user(e.g., network administrator) can input desired configurationinformation for devices on the network to the memory or other storage ofthe management server. This configuration information can includeVLAN/ISID bindings, for example. In some implementations, particularconfiguration information can be associated with particular end deviceidentity information such as users/accounts, MAC addresses, types of enddevices, and/or other end device identity information, if suchinformation is received in the request. For example, the managementserver can store such associations between configuration information andidentity information in one or more storage devices, and stored intables, records, or other organizational format.

Upon receiving the request from the end device for configurationinformation, the management server can determine whether anyconfiguration information is available for that particular end device,or that type of end device, in its accessible storage. In someimplementations, the request for configuration information by the enddevice can be included in or accompanied by one or more requests by theend device for other information stored and provided by the managementserver, such as registration and/or other information for wirelessaccess point operation, and/or other configuration data that the enddevice can use to configure itself. For example, the end device can be awireless access point and can register with the management server (e.g.,find the server, provide its identity and characteristics to the serverand exchange messages to allow the wireless access point to servicewireless client devices), and can request information for wirelessaccess point operation.

In some implementations, the management server can be involved inauthentication of the end device (and/or of a user associated with theend device) for access to the SPB network. For example, for example, theend device can send a request to the management server, which canforward the request to a separate authentication server, or anauthentication portion of the management server can perform suchauthentication. The management server can send an indication back to theend device indicating whether the end device is authenticated or not,similarly as described above for the edge configuration device andaccess control server with respect to FIG. 11.

In block 1304, the end device receives configuration information fromthe management server (e.g., assuming that such configurationinformation exists and is available to the management server to be sentto the end device). As described above, the configuration informationcan include VLAN/ISID bindings for the network to allow use of VLAN(s)in the SPB cloud for the end device.

In block 1306, the end device sends the configuration information to theedge configuration device. For example, in some implementations the enddevice can be fabric attach enabled, allowing the end device to send apredefined packet format with configuration information to the edgeconfiguration device. For example, such a fabric attached enabled enddevice can send the configuration information in one or more LLDPpackets, in a format which can be read by the edge configuration devicethat is also fabric attach enabled, similarly as described above.

In block 1308, the edge configuration device that receives theconfiguration information from the end device sends the configurationinformation to an edge server device for network configuration andconfigures itself based on the configuration information (ifappropriate). For example, similarly as described above, if the edgeserver device accepts the configuration information as valid and sendsthe acceptance back to the edge configuration device, the edgeconfiguration device can create the designated one or more VLANs in itsmemory based on VLAN/ISID bindings in the configuration information,create one or more port memberships of the one or more VLANs for the enddevice on the edge configuration device, and set up port tagging on oneor more ports and connection between edge configuration device and edgeserver device, similarly as described above for FIG. 12. Thus, in someimplementations, the edge configuration device can provision one or morenetwork services (or virtual services) for the end device. In someimplementations, the edge configuration device can send an edge serveracceptance and/or send the configuration information to the end devicefor the end device to create the VLANs in its own memory. If the edgeserver device sends back a rejection of the configuration informationsent by the edge configuration device, then the edge configurationdevice can clear any settings or configuration from its memory andignore the configuration information received from the end device, andcan notify the end device of the rejection in some implementations.

FIG. 14 is a block diagram illustrating an example network system 1400including a server cluster device with split peer server devices andsuitable for use with one or more implementations described herein.Network system 1400 includes an edge configuration device 1402 that iscoupled to an edge server device 1404. The edge server device 1404 iscoupled to an SPB network or “cloud” (or other type of network) 1406,similarly as edge server device 202 described above in FIG. 2. Othercomponents can also be connected which are not shown, e.g., one or moreend devices coupled to the edge configuration device 1402 and/or to theedge server device 1404 similarly as shown in FIG. 2.

The edge server device 1404 includes a plurality (e.g., two) peer serverdevices 1410 and 1412. Each peer server device 1410 and 1412 can be anedge server device similar to edge server device 202 shown in FIG. 2, orcan include a subset of the functionality of the edge server device 202.In this example, each peer server device 1410 and 1412 is connected tothe SPB cloud 1406.

The peer server devices 1410 and 1412 are directly connected to eachother by a communication link 1414. The communication link 1414 caninclude one or more parallel point-to-point links, and allows the peerserver devices 1410 and 1412 to send signals and information to eachother. In some implementations, the communication link 1414 is anInterSwitch Trunk (IST) which is used to allow the two servers tocommunicate and share addressing information, forwarding tables, andstate information (e.g., link state information) with each other, aswell as other information described below. For example, the server 1404can make use of an IST protocol such that the peer servers 1410 and 1412are aggregate servers that create a single logical server 1404 withrespect to devices connecting to the server 1404 via network links (edgeserver device 1404 can also be considered a server cluster). Forexample, this configuration can allow devices configured to use anappropriate link aggregation protocol (e.g., IEEE 802.3ad static linkaggregation protocol) to connect to both servers and take advantage ofload balancing across both peer servers and take advantage of multipleredundant connections to the servers. In some implementations, the peerservers 1410 and 1412 can make use of Split Multi-Link Trunking (SMLT)aggregation technology to perform load balancing between receivedtraffic on incoming network links.

In the example of FIG. 14, the edge server device 1404 is connected tothe edge configuration device 1402 so as to appear to the edgeconfiguration device as a single logical server. For example, the edgeconfiguration device 1402 is connected to each peer server device inserver device 1404 by a different port of the edge configuration device1402. In this example, port 1 of the edge configuration device iscoupled to peer server device 1410 by a network link 1420, and port 2 ofthe edge configuration device is coupled to peer server device 1412 by anetwork link 1422. Each link 1420 or 1422 can be a single link, or canbe implemented as multiple links, e.g., in a multi-link trunking (MLT)implementation. In some implementations, the edge configuration device1402 can generate and send the same packets (including the same LLDPframes) on all links connected to the edge server device 1404, andreceives packets from the server 1404 on either of the ports/links asdetermined by the peer servers 1410 and 1412. For example, in adual-homed configuration, if the edge configuration device is connectedto both peer server devices then both peer server devices receive thesame data. If the edge configuration device is connected to only one ofthe peer server devices (a single-homed connection), the data receivedby the peer server device connected to the edge configuration devices ispassed to the peer server device that is isolated (not connected to theedge configuration device) for validation and installation. Examples ofsuch operation are described in greater detail below.

The edge server device 1404 can be used with the fabric attach featuresdescribed herein. For example, a fabric attach agent can run on eachpeer server 1410 and 1412 and the server device 1404 can receive,process and send fabric attach information (e.g., configurationinformation) to allow end devices to communicate with the SPB cloud1406. Examples of such operation are described below with reference toFIG. 15.

FIG. 15 is a flow diagram illustrating an example method 1500 forconfiguring a network having a server cluster. Method 1500 can beimplemented, for example, by network devices such as each of multiplepeer server devices included in an edge server device (server cluster)that has been connected to a network as described above with referenceto FIGS. 14 and 2. Prior to the method, an edge configuration device andthe edge server device can establish communication and be set up andconfigured on the network, e.g., an SPB network as described above. Insome implementations, each peer server device is provided with a fabricattach agent or other control software enabling communication of thefabric attach information described herein.

In block 1502, the method provides two peer server devices in a servercluster, with a communication link connecting the peer server devices,to form a single logical server device. As described above for FIG. 14,the communication link can be a type of link that allows the peer serverdevices to communicate information with each other. For example, thelink can be an Inter-Switch Trunk (IST) type of link used in SMLT. Thepeer server devices can communicate information such as informationrelated to traffic forwarding and status of individual links, as well asconfiguration information as described below.

In block 1504, the method enables the peer server devices to be detectedas a single logical server (e.g., a server cluster) on a network bynetwork devices connected to that network. For example, in someconfigurations, each peer server device can be connected to a differentport of a single edge configuration device or of a different type ofnetwork device. A single edge configuration device sees the multipleconnections to the logical server device as a single trunk or link. Inother configurations, one peer server device is connected to a port ofone edge configuration device, and the other peer server device isconnected to a port of a different edge configuration device (or othernetwork device).

In block 1506, one or more of the peer server devices receives fabricattach configuration information over the network from an edgeconfiguration device. The configuration information can includeinformation such as VLAN/ISID bindings as described above, and can beprovided in a known fabric attach protocol and format, such as LLDPpackets that include one or more TLVs as described above. The edgeconfiguration device sends this configuration information to the logicalserver to allow creation and/or approval of VLANs, e.g., for use by anassociated end device or other network device (or multiple such devices)connected to the edge configuration device as described above.

In some cases, both peer server devices are connected to the edgeconfiguration device at ports of the edge configuration device and areboth receiving the same information from the edge configuration device.For example, the edge configuration device can send the sameconfiguration information on both ports using the example system shownin FIG. 14. In other cases, only a first one of the peer server devicesreceives the configuration information while the other peer serverdevice in the logical server does not receive the configurationinformation. For example, the first peer server device is connected tothe edge configuration device and the other peer server device is notconnected to that edge configuration device, e.g., is connected to adifferent edge configuration device or other network device, or is notconnected to a network device.

In block 1508, the peer devices are configured based on their receivedconfiguration information. For example, a peer device that receivedVLAN/ISID bindings from the edge configuration device can define aswitched UNI, create VLAN/ISID bindings in its memory, and enable porttagging on the port connected to the edge configuration device,similarly as described above for edge server devices, if such bindingsand configuration are acceptable to the peer server device. If thereceived configuration information (e.g., bindings) are not acceptableto the peer server, no configuration is made of the peer server deviceand a rejection is sent back to the edge configuration device from thatpeer server, similarly as described above.

In block 1510, the peer server device(s) that received the configurationinformation in block 1506 sends the configuration information to theother peer server device over the communication link connecting the twopeer server devices (such as an IST). In some implementations, theconfiguration information itself is sent over the communication link,while in other implementations, information related to (e.g., describingor derived from) the configuration information is sent over thecommunication link, e.g., a subset of the configuration information ifnot all of it is needed for the other peer server device to configureitself or compare the information as described below.

For example, in some implementations, each receiving peer server devicechecks whether the communication link is enabled, and if so, sends theconfiguration information over the communication link. In the case ofboth peer server devices receiving the configuration information, eachpeer server device sends the configuration information to the other peerserver device, e.g., in opposite directions over the communication link.In the case of only one peer server device receiving the configurationinformation, the receiving (first) peer server device sends theinformation to the non-receiving (second) peer server device over thecommunication link. In some implementations, the receiving peer serverdevice does not send the configuration information to the other peerserver device over the communication link if the configurationinformation is rejected by that receiving peer server device, e.g., ifthe configuration information is considered invalid due to reasonsdescribed above for edge server devices.

In block 1512, one or more peer server devices check informationreceived over the communication link and synchronize the configurationson the peer server devices, e.g., where the synchronization causes thesame network configuration to be provided on both of the peer serverdevices. In the case where two peer server devices sent their receivedconfiguration information over the communication link to the other peerdevice, each peer server device compares the configuration informationreceived over the communication link from the other peer server deviceto the configuration information received from the edge configurationdevice to confirm that these sets of configuration information match. Ifsuch a match is confirmed by both peer server devices, then both peerserver devices are known to have received the same configurationinformation and are synchronized.

In the case where only one (first) peer server device received theconfiguration information from the edge configuration device and sentthe configuration information over the communication link to a secondpeer server device, the second peer server device can compare theconfiguration information to the current network configuration on thesecond peer server device and determine whether the configurationinformation is acceptable, e.g., whether there are any conflicts orother conditions not allowing the configuration described by thereceived configuration information to be used, which can be similar toedge server device 202 determining whether a requested configuration isallowed as described above. For example, the configuration informationmay indicate to define a switched UNI on the second peer server devicethat uses a particular type of VLAN. If a VLAN of a different typealready exists on the second peer server device, then that switched UNIcannot be created on that peer server device. In another example, theremay not be adequate resources to create the switched UNI, e.g., thesecond peer server device may only be able to create predeterminednumber of VLANs and that number has already been reached, there may notbe enough memory available to support VLAN creation or UNI creation,etc.

If no conflicts exist, the second peer server device creates aconfiguration in its memory according to the configuration informationreceived over the communication link, e.g., creates a switched UNI andthe VLANs (and VLAN-ISID bindings) indicated in the configurationinformation which mirrors the configuration of the first peer serverdevice, and sends an acceptance to the first peer server device over thecommunication link. The first peer server device (and/or the second peerserver device) can then send an acceptance back to the edgeconfiguration device indicating that the configuration information isacceptable and valid for the edge server device. The edge configurationdevice can then configure itself according the configuration informationto allow access to the SPB network by the associated end device, e.g.,create VLANs, port memberships, port tagging, etc. (e.g., provision oneor more network services (or virtual services) for the associated enddevice).

If one or more conflicts exist, the second peer server device cannotcreate the configuration indicated by the configuration information andsends a rejection back to the first peer server device over thecommunication link. To synchronize the peer server devices, the firstpeer server device removes the configuration from its memory, e.g.,rejects the configuration of VLANs and switched UNIs indicated by theconfiguration information, and sends a rejection to the edgeconfiguration device. The edge configuration device then knows that theconfiguration information is not currently valid for the edge serverdevice, and the edge configuration device can clear any settings orconfiguration from its memory and send a message to the associated enddevice similarly as described above.

FIG. 16 illustrates a block diagram of an example device which may beused to implement some features described herein. Device 1600 can be,for example, an edge configuration device 204, an end device 206, 208,or 210 (e.g., a wireless access point 104 or other client device), awireless controller 110 or other type of network device, etc., as shownin the examples of FIGS. 1 and 2. In some implementations, device 1600can be an edge server device 202 or a peer server device 1410 or 1412 asshown in the example of FIG. 14. In a basic configuration, device 1600typically includes one or more processors 1602 and a system memory 1604.A memory bus 1605 can be used for communicating between processor 1602and system memory 1604.

Depending on the desired configuration, processor 1602 can be of anytype of processing circuitry including but not limited to one or moremicroprocessors, microcontrollers, digital signal processors (DSPs),application specific integrated circuits (ASICs), or any combinationthereof. In some examples, processor 1602 can include one or more levelsof caching, a processor core, and registers. An example processor corecan include an arithmetic logic unit (ALU), a floating point unit (FPU),a digital signal processing core (DSP), or any combination thereof. Amemory controller can also be used with processor 1602, or, in someimplementations, a memory controller can be an internal part ofprocessor 1602.

System memory 1604 can store data used in the operation of the device1600. For example, system memory 1604 can store an operating system forthe device, one or more applications for the device, and program data.In some implementations, the memory 1604 can store software operative toperform network device functionality as well as read the instructionssent by an administrator or other user to the device and perform otherfunctions as described above, including reading and executing commandsand parameters, receiving information from associated network devices,and performing blocks of methods described herein using one or moreprocessors. For example, profiles providing configurations for networkdevices can be stored in memory 1604. Alternatively, the software can beimplemented as hardware or a combination of hardware and software.Memory 1604 can be implemented as one or more of various types, volatileand/or non-volatile, including RAM, ROM, EEPROM, flash memory or othermemory technology, etc.

An interface 1606 can be used to interface the processor 1602 with otherfunctional components of the device 1600. Such other components caninclude network ports 1608 of the device 1600 which are connected toother devices on one or more networks to allow communication of data toand from other network devices. For example, Ethernet, Universal SerialBus (USB), or other types of ports can allow wired network communicationto the device 1600. In some types of devices (e.g., a wireless accesspoint), a transceiver 1610 can be connected to interface 1606 to allowtransmission and reception of wireless signals at the device 1600. Forexample, an RF front end 1612 and antenna 1614 can allow transmissionand reception of wireless RF signals, as well as conversion betweenanalog signals used in the wireless communication and digital signalsused by the device 1600. Signals of other frequencies can becommunicated in other implementations.

Other components 1616 can also be connected to interface 1606. Forexample, storage devices can be connected to the interface 1606, such asCD-ROM, DVD, or other optical storage, magnetic tape storage, magneticdisk storage or other magnetic storage devices, solid state memorystorage, or any other medium which can be used to store the desiredinformation and which can be accessed by device 1600. Any such computerstorage media (including memory 1604) can be part of or accessible bydevice 1600. Example computer storage media can include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, program modules, or other data.

Although the description has been described with respect to particularembodiments thereof, these particular embodiments are merelyillustrative, and not restrictive. Concepts illustrated in the examplesmay be applied to other examples and embodiments.

Note that the functional blocks, methods, devices, and systems describedin the present disclosure may be integrated or divided into differentcombinations of systems, devices, and functional blocks as would beknown to those skilled in the art.

Various blocks and operations of methods described above can beperformed in a different order than shown and/or at least partiallysimultaneously, where appropriate. For example, some implementations canperform blocks of the methods at various times and/or based on eventsnot related to those described. In some implementations, blocks oroperations of the methods can occur multiple times, in a differentorder, and/or at different times in the methods. In someimplementations, the methods can be implemented, for example, on any ofvarious network devices connected to a network.

In general, it should be understood that the circuits described hereinmay be implemented in hardware using integrated circuit developmenttechnologies, or via some other methods, or the combination of hardwareand software that could be ordered, parameterized, and connected in asoftware environment to implement different functions described herein.For example, the implementations may be implemented using a generalpurpose or dedicated processor running a software application throughvolatile or non-volatile memory. Also, the hardware elements maycommunicate using electrical signals, with states of the electricalsignals representing different data. It should be further understoodthat this and other arrangements described herein are for the purposesof example only. As such, those skilled in the art will appreciate thatother arrangements and other elements (e.g., machines, interfaces,functions, orderings, and groupings of functions, etc.) may be usedinstead, and some elements may be omitted altogether according to thedesired results. Further, many of the elements that are described arefunctional entities that may be implemented as discrete or distributedcomponents or in conjunction with other components, in any suitablecombination and location.

Methods and features disclosed herein can be implemented by computerprogram instructions, software instructions, logic, and/or code, whichcan be executed on a computer, e.g., implemented by one or moreprocessors, e.g., microprocessors or other processing circuitry, and canbe stored on a computer program product including a computer readablemedium or computer readable storage medium, e.g., a nontransitorymedium, e.g., magnetic, optical, electromagnetic, or semiconductorstorage medium, including semiconductor or solid state memory, magnetictape, a removable computer diskette, a random access memory (RAM), aread-only memory (ROM), flash memory, a rigid magnetic disk, an opticaldisk, a solid-state memory drive, etc. The program instructions can alsobe contained in, and provided as, an electronic signal, for example inthe form of software as a service (SaaS) delivered from a server.Alternatively, methods and features can be implemented in hardware(logic gates, etc.), or in a combination of hardware and software.

The present disclosure is not to be limited in terms of the particularembodiments described in this application, which are intended asillustrations of various aspects. Many modifications and variations canbe made without departing from its spirit and scope, as will be apparentto those skilled in the art. Functionally equivalent methods andapparatuses within the scope of the disclosure, in addition to thoseenumerated herein, will be apparent to those skilled in the art from theforegoing descriptions. Such modifications and variations are intendedto fall within the scope of the appended claims. The present disclosureis to be limited only by the terms of the appended claims, along withthe full scope of equivalents to which such claims are entitled. It isto be understood that this disclosure is not limited to particularmethods, reagents, compounds, compositions, or biological systems, whichcan, of course, vary. It is also to be understood that the terminologyused herein is for the purpose of describing particular embodimentsonly, and is not intended to be limiting.

With respect to the use of substantially any plural terms and/orsingular term herein, those having ordinary skill in the art cantranslate from the plural to the singular and/or from the singular tothe plural as is appropriate to the context and/or application. Thevarious singular/plural permutations may be expressly set forth hereinfor sake of clarity.

It will be understood by those skilled in the art that, in general,terms used herein, and especially in the appended claims (e.g., bodiesof the appended claims) are generally intended as “open” terms (e.g.,the term “including” should be interpreted as “including but not limitedto,” the term “having” should be interpreted as “having at least,” theterm “includes” should be interpreted as “includes but is not limitedto,” etc.). It will be further understood by those skilled in the artthat if a specific number of an introduced claim recitation is intended,such an intent will be explicitly recited in the claim, and in theabsence of such recitation, no such intent is present. For example, asan aid to understanding, the following appended claims may contain usageof the introductory phrases “at least one” and “one or more” tointroduce claim recitations. However, the use of such phrases should notbe construed to imply that the introduction of a claim recitation by theindefinite articles “a” or “an” limits any particular claim containingsuch introduced claim recitation to embodiments containing only one suchrecitation, even when the same claim includes the introductory phrases“one or more” or “at least one” and indefinite articles such as “a” or“an” (e.g., “a” and/or “an” should be interpreted to mean “at least one”or “one or more”). The same holds true for the use of definite articlesused to introduce claim recitations. In addition, even if a specificnumber of an introduced claim recitation is explicitly recited, those ofordinary skill in the art will recognize that such recitation should beinterpreted to mean at least the recited number (e.g., the barerecitation of “two recitations,” without other modifiers, means at leasttwo recitations, or two or more recitations). Furthermore, in thoseinstances where a convention analogous to “at least one of A, B, and C,etc.” is used, in general, such a construction is intended in the sensethat one having ordinary skill in the art would understand theconvention (e.g., “a system having at least one of A, B, and C” wouldinclude but not be limited to systems that have A alone, B alone, Calone, A and B together, A and C together, B and C together, and/or A,B, and C together, etc.). It will be further understood by those withinthe art that virtually any disjunctive word and/or phrase presenting twoor more alternative terms, whether in the description, claims, ordrawings, should be understood to contemplate the possibilities ofincluding one of the terms, either of the terms, or both terms. Forexample, the phrase “A or B” will be understood to include thepossibilities of “A” or “B” or “A and B.”

In addition, where features or aspects of the disclosure are describedin terms of Markush groups, those skilled in the art will recognize thatthe disclosure is also thereby described in terms of any individualmember or subgroup of members of the Markush group.

As will be understood by one skilled in the art, for any and allpurposes, such as in terms of providing a written description, allranges disclosed herein also encompass any and all possible sub-rangesand combinations of sub-ranges thereof. Any listed range can be easilyrecognized as sufficiently describing and enabling the same range beingbroken down into at least equal halves, thirds, quarters, fifths,tenths, etc. As a non-limiting example, each range discussed herein canbe readily broken down into a lower third, middle third and upper third,etc. As will also be understood by one skilled in the art all languagesuch as “up to,” “at least,” “greater than,” “less than,” and the likeinclude the number recited and refer to ranges which can be subsequentlybroken down into subranges as discussed above. Finally, as will beunderstood by one skilled in the art, a range includes each individualmember. Thus, for example, a group having 1-3 cells refers to groupshaving 1, 2, or 3 cells. Similarly, a group having 1-5 cells refers togroups having 1, 2, 3, 4, or 5 cells, and so forth.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the following claims.

Any suitable programming language may be used to implement the routinesof particular embodiments including C, C++, Java, assembly language,etc. Different programming techniques may be employed such as proceduralor object-oriented. The routines may execute on a single processingdevice or multiple processors. Although the steps, operations, orcomputations may be presented in a specific order, the order may bechanged in different particular embodiments. In some particularembodiments, multiple steps shown as sequential in this specificationmay be performed at the same time.

Particular embodiments may be implemented in a computer-readable storagemedium (also referred to as a machine-readable storage medium) for useby or in connection with an instruction execution system, apparatus,system, or device. Particular embodiments may be implemented in the formof control logic in software or hardware or a combination of both. Thecontrol logic, when executed by one or more processors, may be operableto perform that which is described in particular embodiments.

A “processor” (e.g., processing circuit) includes any suitable hardwareand/or software system, mechanism or component that processes data,signals or other information. A processor may include a system with ageneral-purpose central processing unit, multiple processing units,dedicated circuitry for achieving functionality, or other systems.Processing need not be limited to a geographic location, or havetemporal limitations. For example, a processor may perform its functionsin “real time,” “offline,” in a “batch mode,” etc. Portions ofprocessing may be performed at different times and at differentlocations, by different (or the same) processing systems. A computer maybe any processor in communication with a memory. The memory may be anysuitable processor-readable storage medium, such as random-access memory(RAM), read-only memory (ROM), magnetic or optical disk, or othertangible media suitable for storing instructions for execution by theprocessor.

Particular embodiments may be implemented by using a programmed generalpurpose digital computer, by using application specific integratedcircuits, programmable logic devices, field programmable gate arrays,optical, chemical, biological, quantum or nanoengineered systems,components and mechanisms. In general, the functions of particularembodiments may be achieved by any means known in the art. Distributed,networked systems, components, and/or circuits may be used.Communication, or transfer, of data may be wired, wireless, or by anyother means.

It will also be appreciated that one or more of the elements depicted inthe drawings/figures may also be implemented in a more separated orintegrated manner, or even removed or rendered as inoperable in certaincases, as is useful in accordance with a particular application. It isalso within the spirit and scope to implement a program or code that isstored in a machine-readable medium to permit a computer to perform anyof the methods described above.

While one or more implementations have been described by way of exampleand in terms of the specific embodiments, it is to be understood thatthe implementations are not limited to the disclosed embodiments. To thecontrary, it is intended to cover various modifications and similararrangements as would be apparent to those skilled in the art.Therefore, the scope of the appended claims should be accorded thebroadest interpretation so as to encompass all such modifications andsimilar arrangements.

Thus, while particular implementations have been described herein,latitudes of modification, various changes, and substitutions areintended in the foregoing disclosures, and it will be appreciated thatin some instances some features of particular implementations will beemployed without a corresponding use of other features without departingfrom the scope and spirit as set forth. Therefore, many modificationsmay be made to adapt a particular situation or material to the essentialscope and spirit.

What is claimed is:
 1. A method comprising: requesting a managementserver from an end device upon connection of the end device to ashortest path bridging (SPB) network for SPB configuration informationfor the end device to communicate on the SPB network, wherein the enddevice communicates with the management server over a non-SPB networkconnection, wherein the end device is a non-SPB device that is notcompatible with the SPB network and includes a first fabric attach agentfor processing networking configuration messages; receiving, by the enddevice, the SPB configuration information from the management server,wherein the SPB configuration information received from the managementserver includes one or more bindings mapping one or more virtual localarea networks (VLANs) to one or more service identifiers (ISIDs) for theend device; and sending, by the end device, the SPB configurationinformation to an edge configuration device connected to the end device,wherein the edge configuration device includes a second fabric attachagent, and wherein the SPB configuration information causesconfiguration of the edge configuration device to allow communication ofthe end device on the SPB network.
 2. The method of claim 1 wherein therequesting for SPB configuration information includes sending identityinformation to the management server, the identity informationidentifying the end device or one or more users associated with the enddevice.
 3. The method of claim 1 wherein the configuring of the edgeconfiguration device includes creating the one or more VLANs for the enddevice on the edge configuration device as indicated by the SPBconfiguration information, and creating one or more port memberships ofthe one or more VLANs for the end device.
 4. The method of claim 1wherein the configuring of the SPB network for the end device includesestablishing port tagging status on one or more ports of the edgeconfiguration device connected to an edge server device.
 5. The methodof claim 1 wherein the end device communicates with the managementserver over a wireless network and registers with the management server.6. A device comprising: a memory; and at least one processor configuredto access the memory and perform operations comprising: requesting amanagement server from an end device upon connection of the end deviceto a shortest path bridging (SPB) network for SPB configurationinformation for the end device to communicate on the SPB network,wherein the end device communicates with the management server over anon-SPB connection, wherein the end device is a non-SPB device that isnot compatible with the SPB network and includes a first fabric attachagent for processing networking configuration messages; receiving theSPB configuration information from the management server, wherein theSPB configuration information received from the management serverincludes one or more bindings mapping one or more virtual local areanetworks (VLANs) to one or more service identifiers (ISIDs) for the enddevice; and sending the SPB configuration information to an edgeconfiguration device connected to the end device, wherein the edgeconfiguration device includes a second fabric attach agent, and whereinthe SPB configuration information causes configuration of the edgeconfiguration device to allow communication of the end device on the SPBnetwork.
 7. The device of claim 6 wherein the requesting for SPBconfiguration information includes sending identity information to themanagement server, the identity information identifying the end deviceor one or more users associated with the end device.
 8. The device ofclaim 6 wherein the configuring of the edge configuration deviceincludes creating the one or more VLANs for the end device on the edgeconfiguration device as indicated by the SPB configuration information,and creating one or more port memberships of the one or more VLANs forthe end device.
 9. The device of claim 6 wherein the configuring of theSPB network for the end device includes establishing port tagging statuson one or more ports of the edge configuration device connected to anedge server device.
 10. The device of claim 6 wherein the end devicecommunicates with the management server over a wireless network andregisters with the management server.
 11. A computer program productcomprising a non-transitory computer-readable medium including programinstructions to be implemented by a device connected to a communicationnetwork, the program instructions performing operations including:requesting a management server from an end device upon connection of theend device to a shortest path bridging (SPB) network for SPBconfiguration information for the end device to communicate on the SPBnetwork, wherein the end device communicates with the management serverover a non-SPB connection, wherein the end device is a non-SPB devicethat is not compatible with the SPB network and includes a first fabricattach agent for processing networking configuration messages; receivingthe SPB configuration information from the management server, whereinthe SPB configuration information received from the management serverincludes one or more bindings mapping one or more virtual local areanetworks (VLANs) to one or more service identifiers (ISIDs) for the enddevice; and sending the SPB configuration information to an edgeconfiguration device connected to the end device, wherein the edgeconfiguration device includes a second fabric attach agent, and whereinthe SPB configuration information causes configuration of the edgeconfiguration device to allow communication of the end device on the SPBnetwork.
 12. The computer program product of claim 11 wherein theconfiguring of the edge configuration device includes creating the oneor more VLANs for the end device on the edge configuration device asindicated by the SPB configuration information, and creating one or moreport memberships of the one or more VLANs for the end device.
 13. Thecomputer program product of claim 11 wherein the configuring of the SPBnetwork for the end device includes establishing port tagging status onone or more ports of the edge configuration device connected to an edgeserver device.